
#ifndef ACCOUNTDAO_MOCK_H
#define ACCOUNTDAO_MOCK_H

#include <stdint.h>
#include <string>
#include "app_platform/cntl_info.h"

#include "erp/account/ddo/contactfilterddo_account.h"	
#include "erp/account/ddo/employeeddo_account.h"	
#include "erp/account/ddo/customercreditddo_account.h"	
#include <set>	
#include "erp/account/ddo/businessunitsddo_account.h"	
#include <map>	
#include <vector>	
#include "erp/account/ddo/employeefilterddo_account.h"	
#include "erp/account/ddo/contactddo_account.h"	
#include "erp/account/ddo/businessunitsfilterddo_account.h"	
#include "intf_accountdao.h"


namespace erp
{
namespace account
{
namespace dao
{

	class CAccountDaoMock : public IAccountDao{
	public:
	    virtual uint32_t DeleteBusinessUnits(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint32_t option,
				uint64_t businessUnitsSysNo,
				const std::string& inReserve,
				std::string& errmsg,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			outReserve = m_outReserve;
			return 0;
	    }		
	    virtual uint32_t DeleteContact(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint32_t option,
				uint64_t contactSysNo,
				const std::string& inReserve,
				std::string& errmsg,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			outReserve = m_outReserve;
			return 0;
	    }		
	    virtual uint32_t DeleteEmployee(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint32_t option,
				uint64_t employeeSysNo,
				const std::string& inReserve,
				std::string& errmsg,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			outReserve = m_outReserve;
			return 0;
	    }		
	    virtual uint32_t GetBusinessUnitsByFilter(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint32_t option,
				const erp::account::ddo::CBusinessUnitsFilterDdo& filter,
				const std::string& inReserve,
				std::string& errmsg,
				uint32_t& total,
				std::vector<erp::account::ddo::CBusinessUnitsDdo >& businessUnitsDdo,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			total = m_total;
			businessUnitsDdo = m_businessUnitsDdo;
			outReserve = m_outReserve;
			return 0;
	    }		
	    virtual uint32_t GetBusinessUnitsBySysNos(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint32_t option,
				const std::set<uint64_t >& businessUnitsSysNo,
				const std::string& inReserve,
				std::string& errmsg,
				std::map<uint64_t,uint32_t >& errorCode,
				std::map<uint64_t,std::string >& errorMsg,
				std::map<uint64_t,erp::account::ddo::CBusinessUnitsDdo >& businessUnitsDdo,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			errorCode = m_errorCode;
			errorMsg = m_errorMsg;
			businessUnitsDdo = m_businessUnitsDdo;
			outReserve = m_outReserve;
			return 0;
	    }		
	    virtual uint32_t GetContactByFilter(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint32_t option,
				const erp::account::ddo::CContactFilterDdo& filter,
				const std::string& inReserve,
				std::string& errmsg,
				uint32_t& total,
				std::vector<erp::account::ddo::CContactDdo >& contactDdo,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			total = m_total;
			contactDdo = m_contactDdo;
			outReserve = m_outReserve;
			return 0;
	    }		
	    virtual uint32_t GetContactBySysNos(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint32_t option,
				const std::set<uint64_t >& contactSysNo,
				const std::string& inReserve,
				std::string& errmsg,
				std::map<uint64_t,uint32_t >& errorCode,
				std::map<uint64_t,std::string >& errorMsg,
				std::map<uint64_t,erp::account::ddo::CContactDdo >& contactDdo,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			errorCode = m_errorCode;
			errorMsg = m_errorMsg;
			contactDdo = m_contactDdo;
			outReserve = m_outReserve;
			return 0;
	    }		
	    virtual uint32_t GetCustomerCredit(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint32_t option,
				uint64_t branchSysNo,
				uint64_t businessUnitsSysNo,
				const std::string& inReserve,
				std::string& errmsg,
				erp::account::ddo::CCustomerCreditDdo& customerCreditDdo,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			customerCreditDdo = m_customerCreditDdo;
			outReserve = m_outReserve;
			return 0;
	    }		
	    virtual uint32_t GetEmployeeByFilter(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint32_t option,
				const erp::account::ddo::CEmployeeFilterDdo& filter,
				const std::string& inReserve,
				std::string& errmsg,
				uint32_t& total,
				std::vector<erp::account::ddo::CEmployeeDdo >& businessUnitsDdo,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			total = m_total;
			businessUnitsDdo = m_businessUnitsDdo;
			outReserve = m_outReserve;
			return 0;
	    }		
	    virtual uint32_t GetEmployeeBySysNos(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint32_t option,
				const std::set<uint64_t >& employeeSysNo,
				const std::string& inReserve,
				std::string& errmsg,
				std::map<uint64_t,uint32_t >& errorCode,
				std::map<uint64_t,std::string >& errorMsg,
				std::map<uint64_t,erp::account::ddo::CEmployeeDdo >& employeeDdo,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			errorCode = m_errorCode;
			errorMsg = m_errorMsg;
			employeeDdo = m_employeeDdo;
			outReserve = m_outReserve;
			return 0;
	    }		
	    virtual uint32_t ModifyBusinessUnits(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint32_t option,
				const erp::account::ddo::CBusinessUnitsDdo& businessUnitsDdo,
				const std::string& inReserve,
				std::string& errmsg,
				uint64_t& SysNo,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			SysNo = m_SysNo;
			outReserve = m_outReserve;
			return 0;
	    }		
	    virtual uint32_t ModifyContact(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint32_t option,
				const erp::account::ddo::CContactDdo& contactDdo,
				const std::string& inReserve,
				std::string& errmsg,
				uint64_t& SysNo,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			SysNo = m_SysNo;
			outReserve = m_outReserve;
			return 0;
	    }		
	    virtual uint32_t ModifyCustomerCredit(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint32_t option,
				const erp::account::ddo::CCustomerCreditDdo& customerCreditDdo,
				const std::string& inReserve,
				std::string& errmsg,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			outReserve = m_outReserve;
			return 0;
	    }		
	    virtual uint32_t ModifyEmployee(
				const CCntlInfo& rCntlInfo,

				const std::string& machineKey,
				const std::string& source,
				uint32_t sceneId,
				uint32_t option,
				const erp::account::ddo::CEmployeeDdo& employeeDdo,
				const std::string& inReserve,
				std::string& errmsg,
				uint64_t& SysNo,
				std::string& outReserve
	    	)
	    {
			errmsg = m_errmsg;
			SysNo = m_SysNo;
			outReserve = m_outReserve;
			return 0;
	    }		
	
   public:
			std::string m_errmsg;
			std::string m_outReserve;
			uint32_t m_total;
			std::vector<erp::account::ddo::BusinessUnitsDdo > m_businessUnitsDdo;
			std::map<uint64_t,uint32_t > m_errorCode;
			std::map<uint64_t,std::string > m_errorMsg;
			std::map<uint64_t,erp::account::ddo::BusinessUnitsDdo > m_businessUnitsDdo;
			std::vector<erp::account::ddo::ContactDdo > m_contactDdo;
			std::map<uint64_t,erp::account::ddo::ContactDdo > m_contactDdo;
			erp::account::ddo::CustomerCreditDdo m_customerCreditDdo;
			std::map<uint64_t,erp::account::ddo::EmployeeDdo > m_employeeDdo;
			uint64_t m_SysNo;
	};
	
}
}
}

#endif /* ACCOUNTDAO_MOCK_H */

